home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1998 September / Macworld (1998-09).dmg / Shareware World / Info / For Developers / MacZoop 1.8.3 / Required Classes / Z Headers / ZClipboard.h < prev    next >
Text File  |  1998-06-11  |  2KB  |  101 lines

  1. /*************************************************************************************************
  2. *
  3. *
  4. *            MacZoop - "the framework for the rest of us"     
  5. *
  6. *
  7. *
  8. *            ZClipboard.h    -- the clipboard object
  9. *
  10. *
  11. *
  12. *
  13. *
  14. *            © 1997, Graham Cox
  15. *
  16. *
  17. *
  18. *
  19. *************************************************************************************************/
  20.  
  21. #pragma once
  22.  
  23. #ifndef __ZCLIPBOARD__
  24. #define __ZCLIPBOARD__
  25.  
  26. #ifndef __ZCOMRADE__
  27. #include    "ZComrade.h"
  28. #endif
  29.  
  30. class    ZClipboard;
  31.  
  32. extern ZClipboard*    gClipboard;
  33.  
  34.  
  35. DEFINECLASSID( ZClipboard, 'zclp' );
  36.  
  37. // class def:
  38.  
  39. class    ZClipboard : public ZComrade
  40. {
  41. public:
  42.     ZClipboard() : ZComrade() { classID = CLASS_ZClipboard; gClipboard = this; };
  43.     ~ZClipboard() {};
  44.  
  45. // putting data on the clipboard
  46.     virtual void    PutData( OSType dataType, Handle someData );
  47.     virtual void    PutData( OSType dataType, Ptr dataPtr, const long dataLen );
  48.     virtual void    PutData( PicHandle aPicture );
  49.     virtual void    PutText( Handle textH );
  50.     virtual void    PutText( Ptr charBuf, const long textLen );
  51.     
  52.     virtual void    AppendData( OSType dataType, Handle someData );
  53.     virtual void    AppendData( OSType dataType, Ptr dataPtr, const long dataLen );
  54.     virtual void    AppendData( PicHandle aPicture );
  55.     virtual void    AppendText( Handle textH );
  56.     virtual void    AppendText( Ptr charBuf, const long textLen );
  57.     
  58. // clearing the clipboard
  59.     virtual void    Clear();
  60.     
  61. // getting data and info
  62.     virtual Handle    GetData( OSType dataType );
  63.     virtual Boolean    QueryType( OSType dataType );
  64.     virtual long    GetDataSize( OSType dataType );
  65.     virtual short    GetClipStatus();
  66.     
  67. // private scrap conversion
  68.     virtual void    ConvertFromPrivate() {};
  69.     virtual void    ConvertToPrivate() {};
  70.  
  71. // multi-data handling stuff    
  72.     virtual short    CountTypes();
  73.     virtual OSType    GetIndType( const short index );
  74.     
  75. protected:
  76.     Boolean            GetWildcardType( OSType* aType );
  77. };
  78.  
  79. // this object is a "wrapper" for clipboard storage ops. This class implements its behaviour
  80. // using the standard desk scrap. You can subclass it for private scrap schemes.
  81.  
  82. // pass this in any type parameter to obtain ANY data from the scrap, regardless oftype:
  83.  
  84. enum
  85. {
  86.     Wild_Card = '????'
  87. };
  88.  
  89. // ZClipboard transmits the following messages to is comrades:
  90.  
  91. enum
  92. {
  93.     clipContentsChanged = 'clp1',
  94.     clipContentsAppended,
  95.     clipContentsCleared,
  96.     clipDataConverted
  97. };
  98.  
  99. // hint: these can be used to inform a "clipboard window" to update itself.
  100.  
  101. #endif